// inventory.js
Page({
    data: {
      materialNumber: '', // 物料号
      materialName: '',   // 物料名称
      items: [],          // 查询结果
    },
  
    onMaterialNumberInput(e) {
      this.setData({ materialNumber: e.detail.value });
    },
  
    onMaterialNameInput(e) {
      this.setData({ materialName: e.detail.value });
    },
  
    handleSearch() {
      const { materialNumber, materialName } = this.data;
  
      const app = getApp();
      const db = app.globalData.db;
  
      // 构建查询条件
      let query = {};
      if (materialNumber.trim() || materialName.trim()) {
        query = {
          $and: [
            materialNumber.trim()
              ? { materialNumber: db.RegExp({ regexp: materialNumber, options: 'i' }) }
              : {},
            materialName.trim()
              ? { materialName: db.RegExp({ regexp: materialName, options: 'i' }) }
              : {},
          ],
        };
      }
  
      // 查询数据库
      db.collection('items')
        .where(query)
        .get()
        .then(res => {
          this.setData({ items: res.data });
  
          if (res.data.length === 0) {
            wx.showToast({
              title: '未找到相关记录',
              icon: 'none',
              duration: 1500,
            });
          }
        })
        .catch(err => {
          wx.showToast({
            title: '查询失败，请稍后重试',
            icon: 'none',
            duration: 1500,
          });
          console.error(err);
        });
    },
  
    onLoad() {
      // 页面加载时，默认显示全部物料
      this.handleSearch();
    },
    
    handleExport() {
        wx.showLoading({
          title: '正在导出...',
        });
    
        const app = getApp();
        const cloud = app.globalData.cloud;
    
        if (!cloud) {
          wx.hideLoading();
          wx.showToast({
            title: '云开发未初始化',
            icon: 'none',
            duration: 1500,
          });
          return;
        }
    
        cloud.callFunction({
          name: 'exportExcel',
        }).then(res => {
          wx.hideLoading();
    
          if (!res.result.success) {
            wx.showToast({
              title: res.result.message || '导出失败，请稍后重试',
              icon: 'none',
              duration: 1500,
            });
            return;
          }
    
          // 下载文件
          wx.cloud.downloadFile({
            fileID: res.result.fileID,
          }).then(downloadRes => {
            const filePath = downloadRes.tempFilePath;
    
            // 打开文件预览
            wx.openDocument({
              filePath,
              fileType: 'xlsx',
              success: () => {
                wx.showToast({
                  title: '导出成功',
                  icon: 'success',
                  duration: 1500,
                });
              },
              fail: err => {
                wx.showToast({
                  title: '打开文件失败',
                  icon: 'none',
                  duration: 1500,
                });
                console.error(err);
              },
            });
          }).catch(err => {
            wx.showToast({
              title: '下载文件失败',
              icon: 'none',
              duration: 1500,
            });
            console.error(err);
          });
        }).catch(err => {
          wx.hideLoading();
          wx.showToast({
            title: '导出失败，请稍后重试',
            icon: 'none',
            duration: 1500,
          });
          console.error(err);
        });
      },

  });